Skip to content

Introduce a cloud-deploy-pipelines skill#85

Open
mattsanta wants to merge 5 commits intogemini-cli-extensions:mainfrom
mattsanta:main
Open

Introduce a cloud-deploy-pipelines skill#85
mattsanta wants to merge 5 commits intogemini-cli-extensions:mainfrom
mattsanta:main

Conversation

@mattsanta
Copy link

@mattsanta mattsanta commented Mar 6, 2026

This skill provides a workflow for guiding users through the process of setting up a Cloud Deploy delivery pipeline and managing releases.

One notable thing is that the skill requires gcloud since Cloud Deploy's YAML for declarative resources is a gcloud concept.

Can be further expanded to support information related to non-deploy jobs, e.g. deploy hooks and/or verify.

…rough the process of designing a Cloud Deploy delivery pipeline
@gemini-code-assist
Copy link

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces a new skill designed to streamline the creation of Google Cloud Deploy delivery pipelines. It provides a structured approach for users to define their deployment environments, configure advanced strategies like canary deployments and automatic rollbacks, and generate necessary configuration files for Cloud Run and GKE applications. The goal is to simplify the setup process for continuous delivery on Google Cloud.

Highlights

  • New Skill Introduction: A new skill, cloud-deploy-pipeline-designer, has been introduced to guide users through setting up Google Cloud Deploy delivery pipelines.
  • Comprehensive Workflow: The skill provides a step-by-step workflow covering prerequisites, defining targets, configuring delivery pipelines, setting up automations, validating configurations, and creating Skaffold files and runtime manifests.
  • Deployment Target Support: The skill supports deploying applications to both Cloud Run and Google Kubernetes Engine (GKE).
  • Reference Documentation: Extensive reference documentation has been added, providing YAML examples for basic Cloud Run and Kubernetes manifests, Cloud Deploy automations, delivery pipelines, targets, and Skaffold configurations.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • skills/cloud-deploy-pipeline-designer/SKILL.md
    • Added a new skill definition for Cloud Deploy pipeline design.
    • Included a detailed workflow for guiding users through pipeline creation.
    • Defined constraints and rules for generating configurations.
  • skills/cloud-deploy-pipeline-designer/references/basic-cloudrun-manifests.md
    • Added example YAML for basic Cloud Run service and worker pool manifests.
  • skills/cloud-deploy-pipeline-designer/references/basic-k8s-manifests.md
    • Added example YAML for basic Kubernetes Deployment and Service manifests.
  • skills/cloud-deploy-pipeline-designer/references/configure-automations.md
    • Added example YAML for Cloud Deploy Automation resources, including automatic rollbacks, retries, scheduled promotions, delayed promotions, and canary advances.
  • skills/cloud-deploy-pipeline-designer/references/configure-pipelines.md
    • Added example YAML for Cloud Deploy DeliveryPipeline configurations, covering single/multiple targets and canary deployment strategies for Cloud Run and GKE.
  • skills/cloud-deploy-pipeline-designer/references/configure-skaffold.md
    • Added example YAML for Skaffold configurations for deploying to Cloud Run and GKE, including different manifest types (rawYaml, Helm, Kustomize).
  • skills/cloud-deploy-pipeline-designer/references/configure-targets.md
    • Added example YAML for Cloud Deploy Target resources for Cloud Run and GKE, including options for requiring approval.
Activity
  • The author, mattsanta, created this pull request to introduce the new cloud-deploy-pipeline-designer skill.
  • No human activity (comments, reviews) has been recorded on this pull request yet.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a new skill for designing Cloud Deploy pipelines, which is a valuable addition. The documentation is well-structured and comprehensive. I've identified a few areas for improvement, including a minor typo, a convention-related issue regarding file endings, and a significant error in a Skaffold YAML example that would cause it to fail. The details and suggestions for fixes are provided in the specific comments.

Note: Security Review has been skipped due to the limited scope of the PR.

@mattsanta mattsanta changed the title Introduce a cloud-deploy-pipeline-designer skill Introduce a cloud-deploy-pipelines skill Mar 6, 2026
Copy link

@kkarrenn kkarrenn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great! Thank you!

@yeshwanth1993
Copy link
Contributor

/gcbrun

---
name: cloud-deploy-pipelines
description: >
Design Cloud Deploy delivery pipelines and manage releases when deploying applications to Cloud Run and Google Kubernetes Engine (GKE). Use when users want to deploy their applications to multiple environments (e.g. dev and prod), leverage deployment strategies (i.e. canary), or enable automatic rollbacks when there are issues with the rollout. Should also be used if the user is already using Cloud Deploy and wants to create releases, promote releases across environments, or debug release failures.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not just automatic, if they need just the rolling back feature they should cloud deploy.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will suggest updating last sentence:
Should also be used if the user is already using Cloud Deploy and wants to create releases, promote releases across environments, rollback a release, or debug release failures.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated. LMK what you think.

yeshwanth1993
yeshwanth1993 previously approved these changes Mar 9, 2026
Comment on lines +59 to +60

Ensure that the `clouddeploy.yaml` file is valid. See https://docs.cloud.google.com/deploy/docs/config-files for the schema.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a dry run command for gcloud deploy apply?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately, no.


### Step 1: Define the target environments

1. Identify the number of environments (e.g., dev, staging, production).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we qualify environment to "deployment environment"?
We are using "environment" in multiple skills, e.g. analyze local environment, and I am not sure just environment will confuse LLM

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SGTM, updated.

2. Create a `skaffold.yaml` file required to create a Cloud Deploy `Release` for the `DeliveryPipeline`.
- Use `references/configure-skaffold.md` as a reference when generating the `skaffold.yaml` file.

## Release Management
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be

## Workflow: Release Management

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It intentionally isn't. The Release Management section covers a number of different scenarios related to release management but they aren't necessarily meant to be a workflow that's executed step by step. For example, creating a release doesn't mean I want to promote a release immediately after. This section could (and likely would) expand to include more information for the agent such as manually rolling back a release, which again isn't always applicable.

This is the section that I initially wanted to provide as a separate skill, but as discussed over chat we're sticking to 1 skill for now.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also plan to add another section at the same level of Workflow: Designing a Pipeline and Release Management that will give the agent more guidance for setting up more complex features in the pipeline that we don't necessarily want to include as a part of the "guided" design workflow. Reasoning behind this is to avoid overwhelming the user with questions for setting up an initial pipeline.


## Release Management

This section covers the various aspects of managing Cloud Deploy `Release` resources.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does it make sense to match previous workflow style comment e.g.

This workflow provides the various aspects of managing Cloud Deploy `Release` resources.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See other comment about "workflow"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants